//package com.bonc.extractor;
//
//import java.awt.BorderLayout;
//import java.awt.Color;
//import java.util.ArrayList;
//
//import javax.swing.JFrame;
//import javax.swing.JPanel;
//import javax.swing.WindowConstants;
//
//import com.apporiented.algorithm.clustering.AverageLinkageStrategy;
//import com.apporiented.algorithm.clustering.Cluster;
//import com.apporiented.algorithm.clustering.ClusteringAlgorithm;
//import com.apporiented.algorithm.clustering.DefaultClusteringAlgorithm;
//import com.apporiented.algorithm.clustering.visualization.DendrogramPanel;
//import com.bonc.vectorspacemodel.Corpus;
//import com.bonc.vectorspacemodel.Document;
//import com.bonc.vectorspacemodel.VectorSpaceModel;
//
///**
// * @author donggui@bonc.com.cn
// * @version 2016 2016年6月20日 下午3:53:33
// */
//public class VectorAndClusterTester {
//
//	private Cluster createSampleCluster(double[][] distances){
//		int row = distances.length;
//		String[] names = new String[row];
//		for(int i = 1; i < row +1; i++){
//			names[i-1] = String.valueOf(i);
//		}
////        String[] names = new String[] { "O1", "O2", "O3", "O4", "O5", "06", "07" };
//        ClusteringAlgorithm alg = new DefaultClusteringAlgorithm();
//        Cluster cluster = alg.performClustering(distances, names, new AverageLinkageStrategy());
//        cluster.toConsole(0);
//        return cluster;		
//	}
//	
//	private void displayCluster(double[][] distances){
//        JFrame frame = new JFrame();
//        frame.setSize(400, 300);
//        frame.setLocation(400, 300);
//        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
//
//        JPanel content = new JPanel();
//        DendrogramPanel dp = new DendrogramPanel();
//
//        frame.setContentPane(content);
//        content.setBackground(Color.red);
//        content.setLayout(new BorderLayout());
//        content.add(dp, BorderLayout.CENTER);
//        dp.setBackground(Color.WHITE);
//        dp.setLineColor(Color.BLACK);
//        dp.setScaleValueDecimals(0);
//        dp.setScaleValueInterval(1);
//        dp.setShowDistances(false);
//
//        Cluster cluster = createSampleCluster(distances);
//        dp.setModel(cluster);
//        frame.setVisible(true);
//	}
//	
//
//    
//	public static void main(String[] args) {
//		
//		Document query = new Document("ds_IBM");
//		Document d1 = new Document("ds_2012");
//		Document d2 = new Document("ds_2013");
//		Document d3 = new Document("ds_2014");
//		Document d4 = new Document("ds_2015");
//		
//		Document d5 = new Document("ds_CDS");
//		Document hpcs = new Document("hp-cs.txt");
//		Document hpdh = new Document("hp-dh.txt");
//		Document gray = new Document("les-mis.txt");
//		
//
//	
//		ArrayList<Document> documents = new ArrayList<Document>();
//		documents.add(query);
//		documents.add(d1);
//		documents.add(d2);
//		documents.add(d3);
//		documents.add(d4);
//		
//		documents.add(d5);		
//		documents.add(hpcs);
//		documents.add(hpdh);
//		documents.add(gray);
//		
//		Corpus corpus = new Corpus(documents);
//		
//		VectorSpaceModel vectorSpace = new VectorSpaceModel(corpus);
//		
//		int row = documents.size();
//		double[][] distances = new double[row][row];
//		for (int i = 0; i < row; i++){
//			for (int j = i+1; j< row; j++){
//				Document doci = documents.get(i);
//				Document docj = documents.get(j);
//				distances[i][j] = 1 - vectorSpace.jaccardSimilarity(doci, docj);
//				distances[j][i] = distances[i][j];
//				distances[i][i] = 0;
//			}
//		}
//		
//		for(int i = 0; i < row; ++i){
//			for(int j = 0; j < row; ++j){
//				System.out.print(distances[i][j] + "\t");
//			}			
//			System.out.println();
//		}		
//		System.out.println();
//		
//		VectorAndClusterTester tester = new VectorAndClusterTester();
//		tester.displayCluster(distances);
//	}
//}
